home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
HPAVC
/
HPAVC CD-ROM.iso
/
AATW-SSC.ZIP
/
SCHAT.PPE
(
.txt
)
< prev
next >
Wrap
PCBoard Programming Language Executable
|
1994-06-27
|
9KB
|
540 lines
;------------------------------------------------------------------------------
; .ss.
; `²²'
; .,sS$Ss,,s$ .,sS$$$Ss. .,sS$Ss,,s$ .ss. .sSs.
; .d$$²^°²$$$$'.d$P²°^^²$P'.d$$²^°²$$$$'.$$$' .$$$²Sb,.
; $$$' .$$$' $$$²Sçsµ²' .$$$' .$$$'.$$$' .$$$' `$$b.
; $$$b,,d$$$' ,$$$b,....,s$$$$b,,d$$$'.$$$;.,$$$' ;$$$
; `²S$$S²²S$$S²°²S$$$$S²°°²S$$$$$$',$$S²°²S$S'.sS$$$P²'
; .sS²°$$$²²°"' d²°'
; .$$² .$$'
; $$$.,d$$'
; `²S$$S²'
;------------------------------------------------------------------------------
; P.P.L.X. 2.OO (C)1996 - Lone Runner / AEGiS CoRP'96
;------------------------------------------------------------------------------
; PPE 2.OO (plain) - Analysis ON - Postprocessing ON
;------------------------------------------------------------------------------
Boolean BOOLEAN001
Boolean BOOLEAN002
Boolean BOOLEAN003
Integer INTEGER001
Integer INTEGER002
Integer INTEGER003
Integer INTEGER004
Integer INTEGER005
Integer INTEGER006
Integer INTEGER007
Integer INTEGER008
Integer INTEGER009
Integer INTEGER010
Integer INTEGER011
String STRING001
String STRING002
String STRING003
String STRING004
String STRING005
String STRING006
String STRING007
String STRING008
String STRING009
String STRING010
String STRING011
String STRING012
String STRING013
String STRING014
String STRING015
String STRING016
String STRING017
String STRING018
String STRING019
String STRING020
;------------------------------------------------------------------------------
SaveScrn
GetUser
PageOff
STRING007 = " "
STRING006 = "─────────────────────────────────────────────────────────────────────────────"
STRING012 = ReadLine(PPEPath() + "schat.cnf", 1)
STRING013 = ReadLine(PPEPath() + "schat.cnf", 2)
STRING014 = ReadLine(PPEPath() + "schat.cnf", 3)
Sound 0
STRING017 = "@X08@X07@X0F"
STRING018 = " ────────────── Super Split Screen Chat PPE v1.0 by " + STRING007 + " ──────────────@X00"
INTEGER007 = Time()
STRING019 = Chr(64) + Chr(88) + Chr(48) + Chr(67) + Chr(32) + "R" + Chr(101) + Chr(103) + Chr(105) + Chr(115) + Chr(116) + Chr(101) + Chr(114) + Chr(101) + Chr(100) + Chr(32)
INTEGER010 = 1
INTEGER011 = ReadLine(PPEPath() + "schat.cnf", 7)
STRING020 = "@X09" + Upper(ReadLine(PCBDat(), 2))
STRING001 = "@X07" + Upper(ReadLine(PCBDat(), 94)) + "@X08 "
For INTEGER005 = 1 To Len(STRING020) Step 3
INTEGER010 = Left(INTEGER010 * Asc(Mid(STRING020, INTEGER005, 1)), 6)
Next
If (INTEGER010 == INTEGER011) Then
BOOLEAN003 = 1
Endif
If (Exist(PPEPath() + "chatlog." + String(PcbNode()))) Then
FAppend 1, PPEPath() + "chatlog." + String(PcbNode()), 1, 3
FPutLn 1, STRING006
Else
FCreate 1, PPEPath() + "chatlog." + String(PcbNode()), 1, 3
Endif
FPutLn 1, "Chat initiated with " + U_Name() + " on " + String(Date()) + " at " + String(Time())
FPutLn 1
Cls
For INTEGER005 = 1 To 9 Step 4
AnsiPos 1, 12
Print Mid(STRING017, INTEGER005, 4) + STRING018
Delay 4
Next
:LABEL001
INTEGER001 = 1
INTEGER002 = 3
INTEGER003 = 1
INTEGER004 = 13
STRING008 = ""
STRING009 = ""
BOOLEAN001 = 0
If (Lower(ReadLine(PPEPath() + "schat.cnf", 5)) == "top") Then
STRING015 = ""
STRING016 = ""
Else
STRING016 = ""
STRING015 = ""
Endif
Print "@POFF@" + STRING014
Cls
If ((!Exist(PPEPath() + "schat.top") || !Exist(PPEPath() + "schat.bot")) || !Exist(PPEPath() + "schat.mid")) Then
PrintLn STRING012 + "┌──────────────┤ " + STRING013 + " " + STRING014 + " " + STRING013 + STRING007 + STRING012 + " ├──────────────┐"
Print "└" + STRING006 + "┘"
Newlines 10
Print "──" + STRING006
Newlines 10
PrintLn "┌" + STRING006 + "┐"
Print "└──────────┤ (" + STRING013 + "Ctrl" + STRING012 + ") " + STRING014 + "+ " + STRING012 + "(" + STRING013 + "C" + STRING012 + ")" + STRING014 + "olor, " + STRING012 + "(" + STRING013 + "R" + STRING012 + ")" + STRING014 + "edraw, "
Print STRING012 + "(" + STRING013 + "T" + STRING012 + ")" + STRING014 + "ype, or " + STRING012 + "(" + STRING013 + "Esc" + STRING012 + ")" + STRING014 + " to Quit" + STRING012 + " ├───────────┘"
AnsiPos 30, 1
Print STRING001
Else
PrintLn ReadLine(PPEPath() + "schat.top", 1)
Print ReadLine(PPEPath() + "schat.top", 2)
Newlines 10
Print ReadLine(PPEPath() + "schat.mid", 1)
Newlines 10
PrintLn ReadLine(PPEPath() + "schat.bot", 1)
Print ReadLine(PPEPath() + "schat.bot", 2)
Endif
AnsiPos 6, 12
Print STRING014 + " " + STRING015 + " " + STRING013 + ReadLine(PCBDat(), 2) + STRING014 + " " + STRING015 + " "
AnsiPos 69 - Len(U_Name()), 12
Print STRING014 + " " + STRING016 + " " + STRING013
Tokenize U_Name()
While (TokCount() > 0) Do
STRING004 = GetToken()
Print Left(STRING004, 1) + Lower(Right(STRING004, Len(STRING004) - 1)) + " "
EndWhile
Print STRING014 + STRING016 + " "
AnsiPos 32, 12
If (!BOOLEAN003) Print STRING019 + STRING014
AnsiPos INTEGER001, INTEGER002
If (Lower(ReadLine(PPEPath() + "schat.cnf", 5)) == "top") Then
:LABEL002
If (BOOLEAN002) Goto LABEL003
STRING003 = KInkey()
STRING002 = MInkey()
If (STRING003 <> "") Gosub LABEL006
If (STRING002 <> "") Gosub LABEL009
Goto LABEL002
:LABEL003
Else
:LABEL004
If (BOOLEAN002) Goto LABEL005
STRING002 = KInkey()
STRING003 = MInkey()
If (STRING003 <> "") Gosub LABEL006
If (STRING002 <> "") Gosub LABEL009
Goto LABEL004
Endif
:LABEL005
If (STRING008 <> "") FPutLn 1, STRING008
If (STRING009 <> "") FPutLn 1, "-" + STRING009
FClose 1
Cls
For INTEGER005 = 9 To 1 Step -4
AnsiPos 1, 12
Print Mid(STRING017, INTEGER005, 4) + STRING018
Delay 4
Next
RestScrn
If (Lower(ReadLine(PPEPath() + "schat.cnf", 4)) <> "yes") Delete PPEPath() + "chatlog." + String(PcbNode())
If (Lower(ReadLine(PPEPath() + "schat.cnf", 6)) == "yes") Then
INTEGER008 = Time()
INTEGER009 = (INTEGER008 - INTEGER007) / 60
If (INTEGER009 < 0) INTEGER009 = INTEGER009 + 86400
AdjTime INTEGER009
Endif
KbdStuff Chr(27)
End
:LABEL006
If (Asc(STRING003) < 32) Then
Select Case (STRING003)
Case Chr(3)
BOOLEAN001 = !BOOLEAN001
Print STRING014
Case Chr(7)
Beep
Case Chr(8), 1
STRING008 = Left(STRING008, Len(STRING008) - 1)
AnsiPos INTEGER001, INTEGER002
Print Chr(8) + " " + Chr(8)
Dec INTEGER001
Case Chr(13)
INTEGER001 = 1
Inc INTEGER002
If (INTEGER002 > 11) Then
Gosub LABEL012
INTEGER001 = 1
If (STRING008 <> "") Inc INTEGER002
Endif
AnsiPos INTEGER001, INTEGER002
If (STRING008 <> "") FPutLn 1, STRING008
STRING008 = ""
Case Chr(18)
Goto LABEL001
Case Chr(20), "top"
Gosub LABEL014
Case Chr(27)
BOOLEAN002 = 1
End Select
Else
STRING008 = STRING008 + STRING003
AnsiPos INTEGER001, INTEGER002
If (BOOLEAN001) Color Random(14) + 1
Print STRING003
Inc INTEGER001
If (INTEGER001 == 80) Then
INTEGER006 = 79
While (INTEGER006 > 0) Do
If (Mid(STRING008, INTEGER006, 1) == " ") Then
INTEGER001 = 1
If (INTEGER002 == 11) Then
Gosub LABEL012
INTEGER001 = 1
Inc INTEGER002
Goto LABEL007
Endif
Inc INTEGER002
:LABEL007
AnsiPos INTEGER006, INTEGER002 - 1
ClrEol
AnsiPos INTEGER001, INTEGER002
STRING010 = Right(STRING008, 79 - INTEGER006)
FPutLn 1, Left(STRING008, INTEGER006)
If (BOOLEAN001) Then
For INTEGER005 = 1 To Len(STRING010)
Color Random(14) + 1
Print Mid(STRING010, INTEGER005, 1)
Next
Goto LABEL008
Endif
Print STRING010
:LABEL008
INTEGER001 = 80 - INTEGER006
INTEGER006 = 0
Continue
Endif
Dec INTEGER006
If (INTEGER006 == 0) Then
INTEGER001 = 1
Inc INTEGER002
If (INTEGER002 > 11) Then
Gosub LABEL012
INTEGER001 = 1
Inc INTEGER002
Endif
AnsiPos INTEGER001, INTEGER002
STRING010 = ""
FPutLn 1, STRING008
Endif
EndWhile
STRING008 = STRING010
Endif
Endif
Return
:LABEL009
If (Asc(STRING002) < 32) Then
Select Case (STRING002)
Case Chr(3)
BOOLEAN001 = !BOOLEAN001
Print STRING014
Case Chr(7)
Beep
Case Chr(8), 1
STRING009 = Left(STRING009, Len(STRING009) - 1)
AnsiPos INTEGER003, INTEGER004
Print Chr(8) + " " + Chr(8)
Dec INTEGER003
Case Chr(13)
INTEGER003 = 1
Inc INTEGER004
If (INTEGER004 > 21) Then
Gosub LABEL013
INTEGER003 = 1
If (STRING009 <> "") Inc INTEGER004
Endif
AnsiPos INTEGER003, INTEGER004
If (STRING009 <> "") FPutLn 1, "-" + STRING009
STRING009 = ""
Case Chr(18)
Goto LABEL001
Case Chr(20), "bottom"
Gosub LABEL014
Case Chr(27)
BOOLEAN002 = 1
End Select
Else
STRING009 = STRING009 + STRING002
AnsiPos INTEGER003, INTEGER004
If (BOOLEAN001) Color Random(14) + 1
Print STRING002
Inc INTEGER003
If (INTEGER003 == 80) Then
INTEGER006 = 79
While (INTEGER006 > 0) Do
If (Mid(STRING009, INTEGER006, 1) == " ") Then
INTEGER003 = 1
If (INTEGER004 == 21) Then
Gosub LABEL013
INTEGER003 = 1
Inc INTEGER004
Goto LABEL010
Endif
Inc INTEGER004
:LABEL010
AnsiPos INTEGER006, INTEGER004 - 1
ClrEol
AnsiPos INTEGER003, INTEGER004
STRING011 = Right(STRING009, 79 - INTEGER006)
FPutLn 1, "-" + Left(STRING009, INTEGER006)
If (BOOLEAN001) Then
For INTEGER005 = 1 To Len(STRING011)
Color Random(14) + 1
Print Mid(STRING011, INTEGER005, 1)
Next
Goto LABEL011
Endif
Print STRING011
:LABEL011
INTEGER003 = 80 - INTEGER006
INTEGER006 = 0
Continue
Endif
Dec INTEGER006
If (INTEGER006 == 0) Then
INTEGER003 = 1
Inc INTEGER004
If (INTEGER004 > 21) Then
Gosub LABEL013
INTEGER003 = 1
Inc INTEGER004
Endif
AnsiPos INTEGER003, INTEGER004
STRING011 = ""
FPutLn 1, "-" + Left(STRING009, Len(STRING009) - 1)
Endif
EndWhile
STRING009 = STRING011
Endif
Endif
Return
:LABEL012
Print STRING014
For INTEGER005 = 3 To 11
AnsiPos 1, INTEGER005
ClrEol
Next
AnsiPos 1, 3
If (BOOLEAN001) Then
For INTEGER005 = 1 To Len(STRING008)
Color Random(14) + 1
Print Mid(STRING008, INTEGER005, 1)
Next
Else
Print STRING008
Endif
INTEGER001 = GetX()
INTEGER002 = GetY()
AnsiPos INTEGER001, INTEGER002
Return
:LABEL013
Print STRING014
For INTEGER005 = 13 To 21
AnsiPos 1, INTEGER005
ClrEol
Next
AnsiPos 1, 13
If (BOOLEAN001) Then
For INTEGER005 = 1 To Len(STRING009)
Color Random(14) + 1
Print Mid(STRING009, INTEGER005, 1)
Next
Else
Print STRING009
Endif
INTEGER003 = GetX()
INTEGER004 = GetY()
AnsiPos INTEGER003, INTEGER004
Return
:LABEL014
AnsiPos 79, 23
SaveScrn
AnsiPos 11, 6
PrintLn STRING012 + "┌" + Left(STRING006, 58) + "┐"
AnsiPos 11, 7
PrintLn "│" + STRING014 + " " + STRING012 + "│"
AnsiPos 11, 8
PrintLn "└" + Left(STRING006, 58) + "┘"
AnsiPos 13, 7
Print STRING014 + "File: "
STRING004 = ""
STRING005 = ""
INTEGER005 = 0
While (STRING004 <> Chr(13)) Do
STRING004 = KInkey()
If (STRING004 <> Chr(13)) Then
If ((STRING004 == Chr(8)) && (INTEGER005 > 0)) Then
Print Chr(8) + " " + Chr(8)
Dec INTEGER005
STRING005 = Left(STRING005, Len(STRING005) - 1)
Continue
Endif
If ((Asc(STRING004) > 32) && (INTEGER005 < 50)) Then
STRING005 = STRING005 + STRING004
Print STRING004
Inc INTEGER005
Endif
Endif
EndWhile
If (Exist(STRING005)) Then
Print "@CLS@@POFF@"
DispFile STRING005, 0
Newline
Print "@WAIT@"
Endif
RestScrn
AnsiPos INTEGER001, INTEGER002
Return
;------------------------------------------------------------------------------
;
; Usage report (before postprocessing)
;
; ■ Statements used :
;
; 1 End
; 3 Cls
; 4 ClrEol
; 6 Color
; 101 Goto
; 96 Let
; 37 Print
; 7 PrintLn
; 72 If
; 1 DispFile
; 1 FCreate
; 1 FAppend
; 1 FClose
; 11 FPutLn
; 1 GetUser
; 1 Delete
; 1 AdjTime
; 12 Gosub
; 5 Return
; 2 Delay
; 15 Inc
; 5 Dec
; 1 Newline
; 4 Newlines
; 1 Tokenize
; 2 Beep
; 1 KbdStuff
; 31 AnsiPos
; 2 SaveScrn
; 2 RestScrn
; 1 Sound
; 1 PageOff
;
;
; ■ Functions used :
;
; 3 -
; 1 *
; 1 /
; 164 +
; 13 -
; 29 ==
; 13 <>
; 13 <
; 9 <=
; 11 >
; 18 >=
; 63 !
; 24 &&
; 11 ||
; 16 Len(
; 7 Lower()
; 2 Upper()
; 9 Mid()
; 10 Left()
; 3 Right()
; 39 Chr()
; 4 Asc()
; 6 Random()
; 1 Date()
; 3 Time()
; 3 U_Name()
; 6 String()
; 3 PCBDat()
; 22 PPEPath()
; 4 PcbNode()
; 18 ReadLine()
; 1 GetToken()
; 5 Exist()
; 2 GetX()
; 2 GetY()
; 3 KInkey()
; 2 MInkey()
; 1 TokCount()
;
;------------------------------------------------------------------------------
;
; Analysis flags : Ad
;
; A - Adjust online time remaining ■ 5
; Program modify the amount of online time remaining, this may
; be a way to bypass time limits
; ■ Search for : ADJTIME
;
; d - Access PCBOARD.DAT ■ 2
; Program gets the full pathname to PCBOARD.DAT, this may be usefull
; for many PPE so they can find various informations on the system
; (system paths, max number of lines in messages, ...) but it may also
; be a way to gather vital informations.
; ■ Search for : PCBDAT()
;
;------------------------------------------------------------------------------
;
; Postprocessing report
;
; 9 For/Next
; 4 While/EndWhile
; 28 If/Then or If/Then/Else
; 2 Select Case
;
;------------------------------------------------------------------------------
; AEGiS Corp - Break the routines, code against the machines!
;------------------------------------------------------------------------------